Last active
July 14, 2017 19:55
-
-
Save fabianwilliams-zz/6060a519022b22eaaba4926814395575 to your computer and use it in GitHub Desktop.
Working with Docker -- Just Tips and Tricks Stuff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Docker | |
docker-machine ls (this list all the machine that you have locally) | |
docker-machine start [machine name] | |
docker-machine stop [machine name] | |
docker-machine env [machine name] | |
docker-machine ip [machine name] | |
docker-machine status [machine name] | |
docker ps (this list all containers) | |
# Run this command to configure your shell: | |
# eval $(docker-machine env default) | |
docker-machine (this list all of the commands available) | |
---------------Docker Client --------------------- | |
docker pull [image name] | |
docker run [image name] | |
eg docker run -p 80:80 kitematic/hello-world-nginx | |
docker images | |
docker ps | |
docker ps -a (shows all images even ones not running) | |
docker rm [container id] this removes the container | |
docker rmi [image id] | |
------ Getting Source Code into a Container --- | |
1. Create a Container Volume that points to ta Source Code | |
2. Add Code to a custom image | |
Layerd File System | |
Store Files and Codes in VOlumes that site inside Containers | |
Volume writes to the Host machine that is Mounted i.e. if you delete the container it is still there. as oppose to the thin read write layer | |
--- Create a Data Volume ---- | |
docker run -p 8080: 3000 -v /var/www node | |
docker inspect [container name] -- this will look for mounted areas where volume are stored | |
-- Customizing Volumes | |
docker run -p 8080:3000 -v $(pwd):/var/www node | |
-- to remove volumes in a container you can do -- | |
docker rm -v [container id] | |
to make this work using your own volume in a container | |
docker run -p 8080:3000 -v $(pwd):/var/www -w "/var/www" node npm start | |
-- Building a Custom Image -- | |
docker build -t <your username>/node . | |
you can use a npm tool RimRaf to delete items | |
--- publish to docker hub -- | |
docker push <your username> / node -- basdically the name of the image you built | |
from prompt | |
docker login | |
username: | |
password: | |
email: | |
---- to create my custom image --- | |
dotnet publish | |
docker build -t fabsdockone . | |
docker run -d -p 8080:58036 fabsdockone | |
-- to test | |
docker ps | |
-- if issue then | |
docker ps -a | |
--- if your image doesnt have a tag ie. your username you have to tag it before you can push it -- | |
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage | |
--- push to docker hub --- | |
docker push [username]/image name | |
--- if you want to pull you image now that it is built | |
docker pull fabianwilliams/fabsdockone | |
-- linking containers --- | |
1. Build the Image that you will be using | |
docker build -f aspnetcore.dockerfile -t fabianwilliams/fabsdockone | |
2. Start the Container you want to link to | |
docker run -d --name my-mongodb mongo | |
3. Start the Container that will refernce the Linked Container with alias | |
docker run -d -p 8080:56356 --link my-mongodb:mongodb fabianwilliams/node | |
---- using Custom Bridge Network for LInking ---- | |
docker network create --driver bridge [nameofnetwork] | |
now run the container | |
dockeer run -d --net=[networkname] -- name [continername] [name] | |
--- you can execute a command in a running container --- | |
docker exec [container name /id] node dbSeeder.js | |
-- to list Networks in Docker --- | |
docker network ls | |
-- to inspect -- | |
docker network inspect [network name] | |
--- Docker Composte -- | |
docker-compose build | |
docker-compose up | |
docker-compose down | |
logs | |
ps | |
stop | |
start | |
rm | |
----- creating a docker conainer for SQL ---- | |
get the image | |
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=<YourStrong!Passw0rd>' -p 1433:1433 -d microsoft/mssql-server-linux | |
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=P@ssw0rd1!' -p 1433:1433 -d microsoft/mssql-server-linux | |
mssql -s localhost -u sa -p P@ssw0rd1! | |
-- Learn how to Manage DBs on CLI https://www.liquidweb.com/kb/delete-a-mysql-database-on-linux-via-command-line/ --- | |
DROP DATABASE IF EXISTS CityInfoDb | |
---- Docker Compose --- | |
docker-compose build | |
docker-compose up | |
docker-compose up -d (this runs it in deamon mode so the terminal window is not blocked.. ie. it runs behind the scenes) | |
docker-compose ps (this lets you know what is running) | |
docker-compose logs | |
docker-compose down | |
docker-compose start | |
docker-compose stop | |
docker-compose down --rmi all --volumes | |
Troublshoot | |
https://stackoverflow.com/questions/40850156/visual-studio-mac-preview-entity-framework-sqlite-add-migration | |
Azure CLI to do ARM | |
0. To change your Azure Subscription to the one you want to work with | |
azure account set <subscription name or ID> true | |
1. Create a resource group | |
azure group create myResourceGroup eastus2 | |
2. -- Create a Swarm VM | |
azure group deployment create --template-uri https://raw.githubusercontent.com/fabianwilliams/fabsdockerarm1/master/fromdocker/templatev4.json?token=AFdD7vKQmSGdIUBNJJn6fwLobS0tW557ks5ZcWOowA%3D%3D 3rdrock-docker-alpha FabsDockerDeployment1 | |
with Azure Extensions use | |
https://raw.githubusercontent.com/fabianwilliams/fabsdockerarm1/master/fromdocker/templatev5.json?token=AFdD7m3rQq_WElc6Bnb28wAgrPbqepXlks5ZclwgwA%3D%3D | |
3. Delete Resource Group and all Resoures within | |
azure group delete myResourceGroup | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment